package main

import "fmt"

func main() {
	i, j := 42, 2701
	p := &i //p指向i,即p保存的是i的内存地址。这个&语法和php一样

	//上面那行代码等价于  var p *int; p=&i; 即先申明p的类型 就是int的指针类型，然后再对它赋值

	fmt.Println("p的内存地址是：", p)         //注意这里和php不一样了，在php里，会直接取出这个内存地址所指向的值
	fmt.Println("p指针所指向的值，就是i的值：", *p) //在go语言中，这样才是取出内存地址所指向的值

	*p = 21 //通过指针，设置i的值
	fmt.Println("i=", i)

	p = &j      //将p 的指针，重新指向了j
	*p = *p + 1 //通过指针 对j的值，进行运算

	fmt.Println("j=", j) //j的值改变了
}
